package com.lyl.projectspringboot.config;

import com.lyl.projectspringboot.interceptor.LoginInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new LoginInterceptor());
    }

    /**
     * 添加跨域资源共享(CORS)映射配置
     * 该方法用于配置允许从任何来源访问应用的API，并指定允许的HTTP方法和头部
     *
     * @param registry CorsRegistry对象，用于注册CORS映射配置
     */
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        // 配置路径映射，"/**"表示匹配所有路径
        registry.addMapping("/**")
                // 允许所有头部，表示不对HTTP请求的头部进行限制
                .allowedHeaders("*")
                // 允许所有来源，"*"表示任何域名都可以访问资源
                .allowedOrigins("*")
                // 仅允许POST、GET、PUT和DELETE方法，限制了可以跨域的HTTP请求类型
                .allowedMethods("POST", "GET", "PUT", "DELETE");
    }

}
